#include "Color.h"

/*
	Color
*/

/*	public	*/

const Color Color::Black(0.0f, 0.0f, 0.0f);
const Color Color::White(1.0f, 1.0f, 1.0f);
const Color Color::Grey(0.5f, 0.5f, 0.5f);
const Color Color::Red(1.0f, 0.0f, 0.0f);
const Color Color::Green(0.0f, 1.0f, 0.0f);
const Color Color::Blue(0.0f, 0.0f, 1.0f);
const Color Color::Yellow(1.0f, 1.0f, 0.0f);
const Color Color::Magenta(1.0f, 0.0f, 1.0f);
const Color Color::Cyan(0.0f, 1.0f, 1.0f);
const Color Color::Teal(0.0f, 0.5f, 0.5f);
const Color Color::Navy(0.0f, 0.0f, 0.5f);
const Color Color::LightGrey(0.75f, 0.75f, 0.75f);
const Color Color::DarkGrey(0.25f, 0.25f, 0.25f);
const Color Color::Salmon(0xFA, 0x80, 0x72);
const Color Color::Purple(0x80, 0x00, 0x80);
const Color Color::SeaGreen(0x2E, 0x8B, 0x57);
const Color Color::SlateBlue(0x6A, 0x5A, 0xCD);
const Color Color::SpringGreen(0x00, 0xFF, 0x7F);
const Color Color::Tomato(0xFF, 0x63, 0x47);


Color::Color(float red, float green, float blue)
	: _red(red), _green(green), _blue(blue) {}

Color::Color(int red, int green, int blue)
	: _red(float(red) / 0xFF), _green(float(green) / 0xFF), _blue(float(blue) / 0xFF) {}

Color::Color(Color const& color)
	: _red(color._red), _green(color._green), _blue(color._blue) {}

Color const& Color::operator=(Color const& color) {
	this->_red   = color._red;
	this->_green = color._green;
	this->_blue  = color._blue;

	return *this;
}

